#ifndef CAMERA_H_
#define CAMERA_H_

#include "model/point.h"
#include <cmath>
#include "model/ifollower.h"

class Camera : public IFollower{
	protected:
		Point eye;
		Point at;
		Point up;

		static const float PI = 3.141592654f;
	public:
		Camera(Point eye,Point at,Point up){
			this->eye = eye;
			this->up=up;
			this->at=at;
		}

		virtual ~Camera(){}

		virtual void applyCamera()=0;
		virtual void move(float offset)=0;
		virtual void rotateUD(float theta)=0;
		virtual void rotateLR(float theta)=0;

		virtual void updatePosition(const PathIterator& it){
		}
};

#endif /* CAMERA_H_ */
